From 70a58fd83a2b27e432030724563b2b38fbfadcaa Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Sat, 20 May 2017 14:08:42 +0200 Subject: [PATCH] icon: Render at content position Since we get offset automatically to the widget allocation before ->snapshot is called, we still have to offset the difference to the position of the content allocation. --- gtk/gtkicon.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gtk/gtkicon.c b/gtk/gtkicon.c index 3591a30ab0..9d1645e661 100644 --- a/gtk/gtkicon.c +++ b/gtk/gtkicon.c @@ -24,6 +24,7 @@ #include "gtkiconprivate.h" #include "gtkwidgetprivate.h" #include "gtkrendericonprivate.h" +#include "gtksnapshot.h" /* GtkIcon was a minimal widget wrapped around a GtkBuiltinIcon gadget, * It should be used whenever builtin-icon functionality is desired @@ -45,14 +46,22 @@ gtk_icon_snapshot (GtkWidget *widget, { GtkIcon *self = GTK_ICON (widget); GtkCssStyle *style = gtk_css_node_get_style (gtk_widget_get_css_node (widget)); + GtkAllocation content_alloc; GtkAllocation alloc; + int x, y; - gtk_widget_get_content_allocation (widget, &alloc); + gtk_widget_get_allocation (widget, &alloc); + gtk_widget_get_content_allocation (widget, &content_alloc); + x = content_alloc.x - alloc.x; + y = content_alloc.y - alloc.y; + + gtk_snapshot_offset (snapshot, x, y); gtk_css_style_snapshot_icon (style, snapshot, - alloc.width, alloc.height, + content_alloc.width, content_alloc.height, self->image); + gtk_snapshot_offset (snapshot, -x, -y); } static void -- 2.30.2